Skip to content

[SYSTEMDS-3979] Split MM Chain into separate Statement Block - #2623

Closed
ywcb00 wants to merge 14 commits into
apache:mainfrom
ywcb00:feat/recompile/sparsity/mmchain
Closed

ywcb00 wants to merge 14 commits into
apache:mainfrom
ywcb00:feat/recompile/sparsity/mmchain

Conversation

@ywcb00

@ywcb00 ywcb00 commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Hello there,
this PR splits the inputs of a matrix multiplication chain into their own statement block to ensure the MM chain receives correct sparsity information as input (i.e., the sparsity is computed before sparsity rewrites).
The tests are modified accordingly.
All the best,
David

@codecov

codecov Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.61677% with 14 lines in your changes missing coverage. Please review.
✅ Project coverage is 72.16%. Comparing base (9a32bd1) to head (981362f).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
...hops/rewrite/RewriteSplitDagSparsityRecompile.java 88.50% 4 Missing and 6 partials ⚠️
...s/hops/rewrite/SplitStatementBlockRewriteRule.java 94.66% 0 Missing and 4 partials ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               main    #2623      +/-   ##
============================================
+ Coverage     71.52%   72.16%   +0.64%     
- Complexity    51097    51106       +9     
============================================
  Files          1644     2097     +453     
  Lines        198406   226507   +28101     
  Branches      38581    38587       +6     
============================================
+ Hits         141900   163459   +21559     
- Misses        45365    51903    +6538     
- Partials      11141    11145       +4     
Flag Coverage Δ
java 71.52% <91.61%> (+<0.01%) ⬆️
python 76.68% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

ywcb00 added 14 commits October 23, 2026 16:38
…va class to not being exclusive for read instructions
…multiplication chain into their own statement block
…parate method for processing the children of matrix multiplication hops

chore(test/functions/rewrite/RewriteSplitDagUnkownNnzReadTest.java): update assert string check to the new version of the log output
… into separate statement block only before the chain instead of before and after the chain
…nd AFTER the MM chain regardless of whether input nnz are known or not

	NOTE: Thereby, we create a separate statement block for every mm chain, in which we can optimize and rewrite the mm chain isolated from other operations.
…wo separate test cases for read and mm chain
…e function to recursive instead of relying on layer structure through a list
…chains with at least two matrix multiplications
…n abstract class for common functionality of rewrite rules that split statement blocks

refactor(main/hops/rewrite/RewriteSplit**.java): extend the newly created abstract class for spit statement blocks functionality
…name rewrite class

refactor(main/test/functions/rewrite/RewriteSplitDagSparsityRecompileTest.java): rename test related to the renamed rewrite class
@ywcb00
ywcb00 force-pushed the feat/recompile/sparsity/mmchain branch from 8a3d7ef to 981362f Compare October 23, 2026 14:38
@ywcb00 ywcb00 closed this Oct 24, 2026
@github-project-automation github-project-automation Bot moved this from In Progress to Done in SystemDS PR Queue Oct 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant